package picol.model.asa.expr;

import picol.model.asa.inst.ASAInstPicoL;
import picol.model.memory.TableSymbole;

/**
 * Classe de gestion de l'assignation OU
 * @author Aurélien Marcel - Julien Sanderson
 */
public class ASAExprAssignationOR extends ASAExprAffect {

    public ASAExprAssignationOR(ASAExpr _expr1, ASAExpr _expr2) {
        super(_expr1, _expr2);
    }

    @Override
    public String getLabelExplorateur() {
        return "ASSIGNATION OR";
    }

    @Override
    public int evalue() {

        String ident = "" + expr1.getToken();
        int resultat = (expr1.evalue() | expr2.evalue());

        for (TableSymbole table : ASAInstPicoL.listTblSym) {
            if (table.existeVariable(ident)) {
                table.modifierVariable(ident, new ASAExprEntier(resultat));
            }
        }

        return resultat;
    }
}
